package unq.uis.robots.ui;

import org.uqbar.arena.actions.MessageSend;
import org.uqbar.arena.layout.ColumnLayout;
import org.uqbar.arena.layout.HorizontalLayout;
import org.uqbar.arena.layout.VerticalLayout;
import org.uqbar.arena.widgets.Button;
import org.uqbar.arena.widgets.Label;
import org.uqbar.arena.widgets.Panel;
import org.uqbar.arena.widgets.TextBox;
import org.uqbar.arena.windows.Dialog;
import org.uqbar.arena.windows.SimpleWindow;
import org.uqbar.arena.windows.WindowOwner;

import unq.uis.robots.applicationsModels.PelearApplicationModel;



public class PelearWindow extends Dialog<PelearApplicationModel> {

	private static final long serialVersionUID = 1L;

	public PelearWindow(WindowOwner owner, PelearApplicationModel model) {
		super(owner, model);
	}

	protected void createMainTemplate(Panel mainPanel) {
		this.setTitle("Campo De Batalla");
		super.createMainTemplate(mainPanel);
	}

	@Override
	protected void createFormPanel(Panel mainPanel) {
		this.crearDatosJugador(mainPanel);
		this.crearDatosPelea(mainPanel);
		this.crearDatosApuesta(mainPanel);
		this.crearBotonCompetir(mainPanel);
		//this.crearDatosResultadosPelea(mainPanel);
	}

	public void crearDatosApuesta(Panel mainPanel) {
		Panel panel = new Panel(mainPanel);
		panel.setLayout(new VerticalLayout());
		
		new Label(panel).setText("Ingrese su apuesta:");
		new TextBox(panel).bindValueToProperty("apuesta");	
	}

	public void crearDatosPelea(Panel mainPanel) {
		
		Panel panel = new Panel(mainPanel);
		panel.setLayout(new HorizontalLayout());

		Label nombreMiRobot = new Label(panel);
		nombreMiRobot.setFontSize(15);
		nombreMiRobot.bindValueToProperty("robotPropio.nombre");

		Label versus = new Label(panel);
		versus.setFontSize(20);
		versus.setText("  VS  ");

		Label nombreContrincante = new Label(panel);
		nombreContrincante.setFontSize(15);
		nombreContrincante.bindValueToProperty("robotContrincante.nombre");
	}

	public void crearBotonCompetir(Panel panel) {

		Button competir = new Button(panel);
		competir.setCaption("Competir");
		competir.onClick(new MessageSend(this, "pelear"));

	}
	
	public void pelear(){
		this.getModelObject().pelear();
		SimpleWindow<PelearApplicationModel> simple = new ResultadoPeleaWindow(this, this.getModelObject());
		simple.open();
	}

	public void crearDatosJugador(Panel mainPanel) {
		Panel panel = new Panel(mainPanel);
		panel.setLayout(new ColumnLayout(3));

		Label nombre = new Label(panel);
		nombre.setFontSize(20);
		nombre.bindValueToProperty("jugador.nombre");

		new Label(panel).setText("   $").setFontSize(20);

		Label dinero = new Label(panel);
		dinero.setFontSize(20);
		dinero.bindValueToProperty("jugador.dinero");
	}

	
	
	@Override
	protected void addActions(Panel actions) {
		new Button(actions)
			.setCaption("Cerrar")
			.onClick(new MessageSend(this, "close"))
			.setAsDefault()
			.disableOnError();
	}
	
}	